import http from "@/utils/http";

type HomeBannerData = {
  distributionSite: number;
};
export type BannerItem = {
  id: string;
  imgUrl: string;
  hrefUrl: string;
  type: number;
};

// 获取首页广告位图片
export const getHomeBanner = (data: HomeBannerData) => {
  return http<BannerItem[]>({
    url: "/home/banner",
    method: "GET",
    data,
  });
};

export interface HomeCategoryItem {
  /**
   * 展示图标
   */
  icon: string;
  /**
   * id
   */
  id: string;
  /**
   * 分类名称
   */
  name: string;
}

// 获取首页分类数据
export const getHomeCategory = () => {
  return http<HomeCategoryItem[]>({
    url: "/home/category/mutli",
    method: "GET",
  });
};

export interface HomeHotItem {
  /**
   * 推荐说明
   */
  alt: string;
  /**
   * id
   */
  id: string;
  /**
   * 图片集合
   */
  pictures: string[];
  /**
   * 跳转地址
   */
  target: string;
  /**
   * 推荐标题
   */
  title: string;
  /**
   * 推荐类型
   */
  type: string;
}

// 获取人气推荐数据
export const getHomeHot = () => {
  return http<HomeHotItem[]>({
    url: "/home/hot/mutli",
    method: "GET",
  });
};

type HomeNewData = {
  limit: number;
};

/**
 * 数据信息
 */
export interface HomeNewItem {
  /**
   * 备注
   */
  desc: string;
  /**
   * id
   */
  id: string;
  /**
   * 商品名称
   */
  name: string;
  /**
   * 商品图片链接
   */
  picture: string;
  /**
   * 价格
   */
  price: number;
}

// 获取新鲜好物数据
export const getHomeNew = (data: HomeNewData) => {
  return http<HomeNewItem[]>({
    url: "/home/new",
    method: "GET",
    data,
  });
};

type GuessLikeData = {
  page: number;
  pageSize: number;
};

/**
 * 返回数据
 */
export interface GoodsGuessLikeResult {
  /**
   * 总条数
   */
  counts: number;
  /**
   * 当前页数据
   */
  items: GuessItem[];
  /**
   * 当前页数
   */
  page: number;
  /**
   * 总页数
   */
  pages: number;
  /**
   * 每页条数
   */
  pageSize: number;
}

export interface GuessItem {
  /**
   * 商品描述
   */
  desc: string;
  /**
   * 商品折扣
   */
  discount: number;
  /**
   * id
   */
  id: string;
  /**
   * 商品名称
   */
  name: string;
  /**
   * 商品已下单数量
   */
  orderNum: number;
  /**
   * 商品图片
   */
  picture: string;
  /**
   * 商品价格
   */
  price: number;
}

// 获取猜你喜欢数据
export const getHomeGoodsGuessLike = (data: GuessLikeData) => {
  return http<GoodsGuessLikeResult>({
    url: "/home/goods/guessLike",
    method: "GET",
    data,
  });
};

export interface RecommendData {
  /**
   * 分页页码
   */
  page?: number;
  /**
   * 分页数据每页条数
   */
  pageSize?: number;
  /**
   * Tab 项的 id，默认查询全部 Tab 项的第 1 页数据
   */
  subType?: string;
}
export interface RecommendResult {
  /**
   * 活动图片
   */
  bannerPicture: string;
  /**
   * id信息
   */
  id: string;
  /**
   * 子类选项集合
   */
  subTypes: SubType[];
  /**
   * 活动标题
   */
  title: string;
}

/**
 * 子类选项
 */
export interface SubType {
  goodsItems: GoodsItem;
  /**
   * 子类选项id
   */
  id: string;
  /**
   * 子类选项名称
   */
  title: string;
}

export interface GoodsItem {
  /**
   * 总数量
   */
  counts: number;
  /**
   * 商品集合
   */
  items: Item[];
  /**
   * 页码
   */
  page: number;
  /**
   * 总页数
   */
  pages: number;
  /**
   * 页容量
   */
  pageSize: number;
}

/**
 * 商品项
 */
export interface Item {
  /**
   * 商品描述
   */
  desc: string;
  /**
   * 商品id
   */
  id: string;
  /**
   * 商品名称
   */
  name: string;
  /**
   * 商品图片
   */
  picture: string;
  /**
   * 商品价格
   */
  price: number;
}

// 获取特惠推荐的数据
// export const getHotPreference = (data: RecommendData) => {
//   return http<RecommendResult>({
//     url: "/hot/preference",
//     method: "GET",
//     data,
//   });
// };

// // 获取爆款推荐的数据
// export const getHotInVogue = (data: RecommendData) => {
//   return http<RecommendResult>({
//     url: "/hot/inVogue",
//     method: "GET",
//     data,
//   });
// };

// 封装通用的推荐接口
export const getRecommand = (url: string, data: RecommendData) => {
  return http<RecommendResult>({
    url,
    method: "GET",
    data,
  });
};
